home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_funcattrs.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  12KB  |  550 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from test.test_support import verbose, TestFailed, verify
  5. import types
  6.  
  7. class F:
  8.     
  9.     def a(self):
  10.         pass
  11.  
  12.  
  13.  
  14. def b():
  15.     '''my docstring'''
  16.     pass
  17.  
  18. verify(b.__module__ == __name__)
  19. verify(verify.__module__ == 'test.test_support')
  20.  
  21. try:
  22.     b.publish
  23. except AttributeError:
  24.     pass
  25.  
  26. raise TestFailed, 'expected AttributeError'
  27. if b.__dict__ != { }:
  28.     raise TestFailed, 'expected unassigned func.__dict__ to be {}'
  29.  
  30. b.publish = 1
  31. if b.publish != 1:
  32.     raise TestFailed, 'function attribute not set to expected value'
  33.  
  34. docstring = 'its docstring'
  35. b.__doc__ = docstring
  36. if b.__doc__ != docstring:
  37.     raise TestFailed, 'problem with setting __doc__ attribute'
  38.  
  39. if 'publish' not in dir(b):
  40.     raise TestFailed, 'attribute not in dir()'
  41.  
  42.  
  43. try:
  44.     del b.__dict__
  45. except TypeError:
  46.     pass
  47.  
  48. raise TestFailed, 'del func.__dict__ expected TypeError'
  49. b.publish = 1
  50.  
  51. try:
  52.     b.__dict__ = None
  53. except TypeError:
  54.     pass
  55.  
  56. raise TestFailed, 'func.__dict__ = None expected TypeError'
  57. d = {
  58.     'hello': 'world' }
  59. b.__dict__ = d
  60. if b.func_dict is not d:
  61.     raise TestFailed, 'func.__dict__ assignment to dictionary failed'
  62.  
  63. if b.hello != 'world':
  64.     raise TestFailed, 'attribute after func.__dict__ assignment failed'
  65.  
  66. f1 = F()
  67. f2 = F()
  68.  
  69. try:
  70.     F.a.publish
  71. except AttributeError:
  72.     pass
  73.  
  74. raise TestFailed, 'expected AttributeError'
  75.  
  76. try:
  77.     f1.a.publish
  78. except AttributeError:
  79.     pass
  80.  
  81. raise TestFailed, 'expected AttributeError'
  82.  
  83. try:
  84.     F.a.publish = 1
  85. except (AttributeError, TypeError):
  86.     pass
  87.  
  88. raise TestFailed, 'expected AttributeError or TypeError'
  89. F.a.im_func.publish = 1
  90. if F.a.publish != 1:
  91.     raise TestFailed, 'unbound method attribute not set to expected value'
  92.  
  93. if f1.a.publish != 1:
  94.     raise TestFailed, 'bound method attribute access did not work'
  95.  
  96. if f2.a.publish != 1:
  97.     raise TestFailed, 'bound method attribute access did not work'
  98.  
  99. if 'publish' not in dir(F.a):
  100.     raise TestFailed, 'attribute not in dir()'
  101.  
  102.  
  103. try:
  104.     f1.a.publish = 0
  105. except (AttributeError, TypeError):
  106.     pass
  107.  
  108. raise TestFailed, 'expected AttributeError or TypeError'
  109.  
  110. try:
  111.     F.a.myclass = F
  112. except (AttributeError, TypeError):
  113.     pass
  114.  
  115. raise TestFailed, 'expected AttributeError or TypeError'
  116. F.a.im_func.myclass = F
  117. f1.a.myclass
  118. f2.a.myclass
  119. f1.a.myclass
  120. F.a.myclass
  121. if f1.a.myclass is not f2.a.myclass or f1.a.myclass is not F.a.myclass:
  122.     raise TestFailed, 'attributes were not the same'
  123.  
  124.  
  125. try:
  126.     F.a.__dict__ = (1, 2, 3)
  127. except (AttributeError, TypeError):
  128.     pass
  129.  
  130. raise TestFailed, 'expected TypeError or AttributeError'
  131. F.a.im_func.__dict__ = {
  132.     'one': 11,
  133.     'two': 22,
  134.     'three': 33 }
  135. if f1.a.two != 22:
  136.     raise TestFailed, 'setting __dict__'
  137.  
  138. from UserDict import UserDict
  139. d = UserDict({
  140.     'four': 44,
  141.     'five': 55 })
  142.  
  143. try:
  144.     F.a.__dict__ = d
  145. except (AttributeError, TypeError):
  146.     pass
  147.  
  148. raise TestFailed
  149. if f1.a.one != f1.a.one and F.a.one != F.a.one:
  150.     pass
  151. elif F.a.one != 11:
  152.     raise TestFailed
  153.  
  154. import new
  155. F.id = new.instancemethod(id, None, F)
  156. eff = F()
  157.  
  158. try:
  159.     F.id.foo
  160. except AttributeError:
  161.     None if eff.id() != id(eff) else f2.a.one
  162.     None if eff.id() != id(eff) else f2.a.one
  163. except:
  164.     None if eff.id() != id(eff) else f2.a.one
  165.  
  166. raise TestFailed
  167.  
  168. try:
  169.     F.id.foo = 12
  170. except (AttributeError, TypeError):
  171.     None if eff.id() != id(eff) else f2.a.one
  172.     None if eff.id() != id(eff) else f2.a.one
  173. except:
  174.     None if eff.id() != id(eff) else f2.a.one
  175.  
  176. raise TestFailed
  177.  
  178. try:
  179.     F.id.foo
  180. except AttributeError:
  181.     None if eff.id() != id(eff) else f2.a.one
  182.     None if eff.id() != id(eff) else f2.a.one
  183. except:
  184.     None if eff.id() != id(eff) else f2.a.one
  185.  
  186. raise TestFailed
  187.  
  188. try:
  189.     eff.id.foo
  190. except AttributeError:
  191.     None if eff.id() != id(eff) else f2.a.one
  192.     None if eff.id() != id(eff) else f2.a.one
  193. except:
  194.     None if eff.id() != id(eff) else f2.a.one
  195.  
  196. raise TestFailed
  197.  
  198. try:
  199.     eff.id.foo = 12
  200. except (AttributeError, TypeError):
  201.     None if eff.id() != id(eff) else f2.a.one
  202.     None if eff.id() != id(eff) else f2.a.one
  203. except:
  204.     None if eff.id() != id(eff) else f2.a.one
  205.  
  206. raise TestFailed
  207.  
  208. try:
  209.     eff.id.foo
  210. except AttributeError:
  211.     None if eff.id() != id(eff) else f2.a.one
  212.     None if eff.id() != id(eff) else f2.a.one
  213. except:
  214.     None if eff.id() != id(eff) else f2.a.one
  215.  
  216. raise TestFailed
  217.  
  218. def another():
  219.     pass
  220.  
  221.  
  222. try:
  223.     del another.__dict__
  224. except TypeError:
  225.     None if eff.id() != id(eff) else f2.a.one
  226.     None if eff.id() != id(eff) else f2.a.one
  227. except:
  228.     None if eff.id() != id(eff) else f2.a.one
  229.  
  230. raise TestFailed
  231.  
  232. try:
  233.     del another.func_dict
  234. except TypeError:
  235.     None if eff.id() != id(eff) else f2.a.one
  236.     None if eff.id() != id(eff) else f2.a.one
  237. except:
  238.     None if eff.id() != id(eff) else f2.a.one
  239.  
  240. raise TestFailed
  241.  
  242. try:
  243.     another.func_dict = None
  244. except TypeError:
  245.     None if eff.id() != id(eff) else f2.a.one
  246.     None if eff.id() != id(eff) else f2.a.one
  247. except:
  248.     None if eff.id() != id(eff) else f2.a.one
  249.  
  250. raise TestFailed
  251.  
  252. try:
  253.     del another.bar
  254. except AttributeError:
  255.     None if eff.id() != id(eff) else f2.a.one
  256.     None if eff.id() != id(eff) else f2.a.one
  257. except:
  258.     None if eff.id() != id(eff) else f2.a.one
  259.  
  260. raise TestFailed
  261. del another.func_defaults
  262.  
  263. def foo():
  264.     pass
  265.  
  266.  
  267. def bar():
  268.     pass
  269.  
  270.  
  271. def temp():
  272.     print 1
  273.  
  274. if foo == bar:
  275.     raise TestFailed
  276.  
  277. d = { }
  278. d[foo] = 1
  279. foo.func_code = temp.func_code
  280. d[foo]
  281.  
  282. def cantset(obj, name, value, exception = (AttributeError, TypeError)):
  283.     verify(hasattr(obj, name))
  284.     
  285.     try:
  286.         setattr(obj, name, value)
  287.     except exception:
  288.         pass
  289.  
  290.     raise TestFailed, "shouldn't be able to set %s to %r" % (name, value)
  291.     
  292.     try:
  293.         delattr(obj, name)
  294.     except (AttributeError, TypeError):
  295.         pass
  296.  
  297.     raise TestFailed, "shouldn't be able to del %s" % name
  298.  
  299.  
  300. def test_func_closure():
  301.     a = 12
  302.     
  303.     def f():
  304.         print a
  305.  
  306.     c = f.func_closure
  307.     verify(isinstance(c, tuple))
  308.     verify(len(c) == 1)
  309.     verify(c[0].__class__.__name__ == 'cell')
  310.     cantset(f, 'func_closure', c)
  311.  
  312.  
  313. def test_func_doc():
  314.     
  315.     def f():
  316.         pass
  317.  
  318.     verify(f.__doc__ is None)
  319.     verify(f.func_doc is None)
  320.     f.__doc__ = 'hello'
  321.     verify(f.__doc__ == 'hello')
  322.     verify(f.func_doc == 'hello')
  323.     del f.__doc__
  324.     verify(f.__doc__ is None)
  325.     verify(f.func_doc is None)
  326.     f.func_doc = 'world'
  327.     verify(f.__doc__ == 'world')
  328.     verify(f.func_doc == 'world')
  329.     del f.func_doc
  330.     verify(f.func_doc is None)
  331.     verify(f.__doc__ is None)
  332.  
  333.  
  334. def test_func_globals():
  335.     
  336.     def f():
  337.         pass
  338.  
  339.     verify(f.func_globals is globals())
  340.     cantset(f, 'func_globals', globals())
  341.  
  342.  
  343. def test_func_name():
  344.     
  345.     def f():
  346.         pass
  347.  
  348.     verify(f.__name__ == 'f')
  349.     verify(f.func_name == 'f')
  350.     f.__name__ = 'g'
  351.     verify(f.__name__ == 'g')
  352.     verify(f.func_name == 'g')
  353.     f.func_name = 'h'
  354.     verify(f.__name__ == 'h')
  355.     verify(f.func_name == 'h')
  356.     cantset(f, 'func_globals', 1)
  357.     cantset(f, '__name__', 1)
  358.     s = 'def f(): pass\nf.__name__'
  359.     exec s in {
  360.         '__builtins__': { } }
  361.  
  362.  
  363. def test_func_code():
  364.     a = b = 24
  365.     
  366.     def f():
  367.         pass
  368.  
  369.     
  370.     def g():
  371.         print 12
  372.  
  373.     
  374.     def f1():
  375.         print a
  376.  
  377.     
  378.     def g1():
  379.         print b
  380.  
  381.     
  382.     def f2():
  383.         print a, b
  384.  
  385.     verify(type(f.func_code) is types.CodeType)
  386.     f.func_code = g.func_code
  387.     cantset(f, 'func_code', None)
  388.     cantset(f, 'func_code', f1.func_code, exception = ValueError)
  389.     cantset(f1, 'func_code', f.func_code, exception = ValueError)
  390.     cantset(f1, 'func_code', f2.func_code, exception = ValueError)
  391.     f1.func_code = g1.func_code
  392.  
  393.  
  394. def test_func_defaults():
  395.     
  396.     def f(a, b):
  397.         return (a, b)
  398.  
  399.     verify(f.func_defaults is None)
  400.     f.func_defaults = (1, 2)
  401.     verify(f.func_defaults == (1, 2))
  402.     verify(f(10) == (10, 2))
  403.     
  404.     def g(a = 1, b = 2):
  405.         return (a, b)
  406.  
  407.     verify(g.func_defaults == (1, 2))
  408.     del g.func_defaults
  409.     verify(g.func_defaults is None)
  410.     
  411.     try:
  412.         g()
  413.     except TypeError:
  414.         pass
  415.  
  416.     raise TestFailed, "shouldn't be allowed to call g() w/o defaults"
  417.  
  418.  
  419. def test_func_dict():
  420.     
  421.     def f():
  422.         pass
  423.  
  424.     a = f.__dict__
  425.     b = f.func_dict
  426.     verify(a == { })
  427.     verify(a is b)
  428.     f.hello = 'world'
  429.     verify(a == {
  430.         'hello': 'world' })
  431.     None(verify if a is a else a is f.__dict__)
  432.     f.func_dict = { }
  433.     verify(not hasattr(f, 'hello'))
  434.     f.__dict__ = {
  435.         'world': 'hello' }
  436.     verify(f.world == 'hello')
  437.     None(None if f.func_dict is f.func_dict else f.__dict__ == {
  438.         'world': 'hello' })
  439.     cantset(f, 'func_dict', None)
  440.     cantset(f, '__dict__', None)
  441.  
  442.  
  443. def test_im_class():
  444.     
  445.     class C:
  446.         
  447.         def foo(self):
  448.             pass
  449.  
  450.  
  451.     verify(C.foo.im_class is C)
  452.     verify(C().foo.im_class is C)
  453.     cantset(C.foo, 'im_class', C)
  454.     cantset(C().foo, 'im_class', C)
  455.  
  456.  
  457. def test_im_func():
  458.     
  459.     def foo(self):
  460.         pass
  461.  
  462.     
  463.     class C:
  464.         pass
  465.  
  466.     C.foo = foo
  467.     verify(C.foo.im_func is foo)
  468.     verify(C().foo.im_func is foo)
  469.     cantset(C.foo, 'im_func', foo)
  470.     cantset(C().foo, 'im_func', foo)
  471.  
  472.  
  473. def test_im_self():
  474.     
  475.     class C:
  476.         
  477.         def foo(self):
  478.             pass
  479.  
  480.  
  481.     verify(C.foo.im_self is None)
  482.     c = C()
  483.     verify(c.foo.im_self is c)
  484.     cantset(C.foo, 'im_self', None)
  485.     cantset(c.foo, 'im_self', c)
  486.  
  487.  
  488. def test_im_dict():
  489.     
  490.     class C:
  491.         
  492.         def foo(self):
  493.             pass
  494.  
  495.         foo.bar = 42
  496.  
  497.     verify(C.foo.__dict__ == {
  498.         'bar': 42 })
  499.     verify(C().foo.__dict__ == {
  500.         'bar': 42 })
  501.     cantset(C.foo, '__dict__', C.foo.__dict__)
  502.     cantset(C().foo, '__dict__', C.foo.__dict__)
  503.  
  504.  
  505. def test_im_doc():
  506.     
  507.     class C:
  508.         
  509.         def foo(self):
  510.             '''hello'''
  511.             pass
  512.  
  513.  
  514.     verify(C.foo.__doc__ == 'hello')
  515.     verify(C().foo.__doc__ == 'hello')
  516.     cantset(C.foo, '__doc__', 'hello')
  517.     cantset(C().foo, '__doc__', 'hello')
  518.  
  519.  
  520. def test_im_name():
  521.     
  522.     class C:
  523.         
  524.         def foo(self):
  525.             pass
  526.  
  527.  
  528.     verify(C.foo.__name__ == 'foo')
  529.     verify(C().foo.__name__ == 'foo')
  530.     cantset(C.foo, '__name__', 'foo')
  531.     cantset(C().foo, '__name__', 'foo')
  532.  
  533.  
  534. def testmore():
  535.     test_func_closure()
  536.     test_func_doc()
  537.     test_func_globals()
  538.     test_func_name()
  539.     test_func_code()
  540.     test_func_defaults()
  541.     test_func_dict()
  542.     test_im_class()
  543.     test_im_func()
  544.     test_im_self()
  545.     test_im_dict()
  546.     test_im_doc()
  547.     test_im_name()
  548.  
  549. testmore()
  550.